////////////////////////////////////////////////////////////////////////////////
//
//  FLEX USER GROUP HOKURIKU
//  Copyright 2009 Flex User Group Hokuriku
//  All Rights Reserved.
// 
//  NOTICE: Flex User Group Hokuriku permits you to use, 
//  modify, and distribute this file 
//  in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////
package net.fxug.hokuriku.chocolat.events
{
    import flash.events.Event;

    /**
     * 投票管理機構状態イベント
     * このイベントはIVoteWatcherを実装したつぶやき通知クラスが、活性/非活性になった場合にイベントを通知します。
     * @author hikaruworld
     */
    public class VoteStatusEvent extends Event
    {
        /**
         * 通知インターフィエス起動後の準備完了イベントを返す。
         * このイベントは、VoteManagerによって管理されるすべてインターフィエスが起動した後に
         * 一度だけ発行されるイベントです
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td> value </td><td> Vector.＜IVoteWatcher＞ </td></tr>
         * </table>
         *
         * @eventType readyEvent
         */
        public static const READY_EVENT:String = "readyEvent";
        /**
         * 活性状態を返す。
		 *
         * @eventType activeEvent
         */
        public static const ACTIVE_EVENT:String = "activeEvent";
        /**
         * 非活性状態を返す。
         *
         * @eventType inactiveEvent
         */
        public static const INACTIVE_EVENT:String = "inactiveEvent";
		/**
		 * つぶやき回数が上限値に達した場合に発生するイベント
		 * <p>このイベントには、次のプロパティがあります。</p>
		 * <table class=innertable>
		 * <tr><th>Property</th><th>Value</th></tr>
		 * <tr><td>value</td><td> VoteInfo </td></tr>
		 * </table>
		 *
		 * @eventType maxVoteEvent
		 */
		public static const MAX_VOTE_EVENT:String = "maxVoteEvent";

        /**
         * コンストラクタ
         */
        public function VoteStatusEvent(type:String, value:Object, bubbles:Boolean = false, cancelable:Boolean = false)
        {
            super(type, bubbles, cancelable);

            this._value = value;
        }
        /** イベント内容 */
        private var _value:Object;

        /**
         * @inheritDoc flash.events.Event#clone()
         */
        override public function clone():Event
        {
            return new VoteStatusEvent(type, value, bubbles, cancelable);
        }

		/**
		 * @private
		 */
        public function get value():Object
        {
            return _value;
        }

    }
}